<?php
/**
* @package   auto_occasion
* @subpackage formule
* @author    CMS
* @copyright 2011
* @license    All rights reserved
*/

class BoFormuleOptionCtrl extends jController {

public $pluginParams = array(
                                    '*'=>array('auth.required'=>true,
                                    'jacl2.right'=>'admin.compte.gerer'
                                    )
							);

    /**
    * Fonction qui affiche la liste des options des formules 
    */
    function index() {
   
        jClasses::inc("formule~formuleOptionSrv");

        $offset                =  $this->intParam('offset',0,true);
        $nbitemparpage         = FORMULE_NBITEMPARPAGE;
        $properties            = array('start-label' => '',
                                       'prev-label'  => '<',
                                       'next-label'  => '>',
                                       'end-label'   => '',
                                        'area-size'   => 1);
		
        $listeAll           = formuleOptionSrv::liste($offset, $nbitemparpage);
        // les option non - supprimable
        $non_supprimable    = formuleOptionSrv::listeNonSuprimable_();
        $non_supprimable2   = formuleOptionSrv::listeNonSuprimable_2($non_supprimable);
        // récupérer la mere du choix à partir $non_supprimable


        $rep                    = $this->getResponse('html');
        $rep->menusActifs       = adminHtmlResponse::MENU_TARIFS ;

        $rep->body->assign('liste',$listeAll['option']);
        $rep->body->assign('recordCount',$listeAll['nbRecords']);
        $rep->body->assign('non_supprimable', $non_supprimable2);
        $rep->body->assign('nbitemparpage', $nbitemparpage);
        $rep->body->assign('page', $offset);
        $rep->body->assign('properties', $properties);

        $rep->bodyTpl = 'formule~BoFormuleOptionListe';

        return $rep;
    }

     /**
     * Ajout / modification d'une option d'un formule
     *
     *
     */
     function editer() {

        jClasses::inc("formule~formuleOptionSrv");
        $id                     = $this->intParam('id', '');
        $option   = ($id) ? formuleOptionSrv::chargeParId($id) : formuleOptionSrv::init();
        $paiement = formuleOptionSrv::getPaiement($id);


        $rep = $this->getResponse('html');
		$rep->menusActifs        = adminHtmlResponse::MENU_TARIFS ;

        $rep->bodyTpl            = 'formule~BoFormuleOptionEdit';

        $rep->body->assign('id', $id);
        $rep->body->assign('option', $option);
        $rep->body->assign('paiement', $paiement);
        $rep->body->assignZone('listeChoix', 'formule~listeoption', array('id'=>$id));

        return $rep;
    }

      /** 
	  * Sauvegarde d'une option
	  * Redirection vers page liste option après sauvegarde 
	 */
	 function sauvegarder() {
		
        jClasses::inc("formule~formuleOptionSrv");

		$id = $this->intParam('id','');
		$option  = new stdClass();
		$option->lib_option_formule  = $this->stringParam('libelle','');
		$option->status              = $this->stringParam('status','');
		$option->id                  =  $id; 
		$option->paiement            =  $this->param('paiement','');
        
        if ($id)
            formuleOptionSrv::deletePaiementOption($id);


		if ($id){
		  formuleOptionSrv::modifier($option);
		} else {
		  $id = formuleOptionSrv::ajouter($option);
        }
        if($option->paiement) {
              formuleOptionSrv::insertPaiementOption($id,$option->paiement);
		}


		$rep = $this->getResponse('redirect');
        $rep->action = 'formule~BoFormuleOption:index';
 		
        return $rep;
    }
    
    function saveChoise () {
        $rep                         = $this->getResponse('text') ;
        $iOptionId                   = $this->intParam('iId') ;
        $zChoix                      = $this->param('zChoix', '') ;
        $libelle                     = $this->param('libelle', '') ;
        $prix                        = $this->param('prix', '') ;
        $duree                       = $this->param('duree', '') ;
        $description				 = $this->param('description','');

        jClasses::inc("formule~formuleOptionSrv");
        
        $formuleOption = false ;
        if (!$iOptionId) {
            
            $formuleOption           = jDao::createRecord('commun~option_formule') ;
            $formuleOption->lib_option_formule = $libelle ;
            $formuleOption->status             = 1 ;
            
            $iOptionId = formuleOptionSrv::ajouter ($formuleOption) ;
        }
        
        if ($iOptionId) {
            $toParams['formch_optionFormId'] = $iOptionId ;
            $toParams['formch_libelle']      = $zChoix ;
            $toParams['formch_order']        = 0 ;
            $toParams['formch_prix']         = $prix ;
            $toParams['formch_duree']        = $duree ;
            $toParams['formch_description']  = $description ;
            if (!formuleOptionSrv::isThisInChoise($zChoix, $iOptionId) ) {
                formuleOptionSrv::saveChoise($toParams) ;
            }
        }
        
        $rep->content = $iOptionId ;
        
        return $rep;
    }
    
    function supprChoise () {
        
        $iOptionId = $this->intParam('iOptionId') ;
        $iChoiseId = $this->intParam('iId') ;
        
        jClasses::inc("formule~formuleOptionSrv") ;
        formuleOptionSrv::supprChoise($iChoiseId) ;
        
        $rep = $this->getResponse('redirect') ;
        $rep->action = 'formule~BoFormuleOption:editer' ;
        $rep->params = array('id'=>$iOptionId) ;
        
        return $rep;
    }
    
    function supprimer () {
      
        $iOptionId = $this->intParam('id') ;
        
        jClasses::inc("formule~formuleOptionSrv") ;
        formuleOptionSrv::supprimer($iOptionId) ;
        $rep = $this->getResponse('redirect') ;
        $rep->action = 'formule~BoFormuleOption:index' ;
        
        return $rep;
    }

}